<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd.path
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd.path 中文手册</h1><h2 id="auth_name">译者：<strong><a href="http://www.jinbuguo.com/">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="http://www.jinbuguo.com/">金步国作品集</a> [ <a href="http://www.jinbuguo.com/">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd.path"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd.path — 路径单元配置</p></div><div class="refsynopsisdiv"><h2>大纲</h2><p><code class="filename"><em class="replaceable"><code>path</code></em>.path</code></p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd.path.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p>以
    "<code class="literal">.path</code>" 为后缀的单元文件，
    封装了一组由 systemd 监视的文件系统路径，以支持基于路径的启动。</p><p>本手册列出了所有专用于此类单元的
    配置选项(亦称"配置指令"或"单元属性")。
    <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
    中描述了通用于所有单元类型的配置选项，
    它们位于 [Unit] 与 
    [Install] 小节。此类单元专用的配置选项
    位于 [Path] 小节。</p><p>每个路径单元都必须有一个与其匹配的单元，
    以用于在路径发生变化时启动。
    匹配的单元可以通过 <code class="varname">Unit=</code> 选项(见下文)明确指定。
    若未指定，则默认是与该单元名称相同的 .service 单元(不算后缀)。
    例如 <code class="filename">foo.path</code>
    默认匹配 <code class="filename">foo.service</code> 
    单元。</p><p>因为在单元内部实际上使用内核的
    <a href="http://man7.org/linux/man-pages/man7/inotify.7.html"><span class="citerefentry"><span class="refentrytitle">inotify</span>(7)</span></a>
    函数监视文件系统的变化，
    所以，受制于 inotify 的缺陷，
    只能监视本机文件系统的变化，
    而不能监视远程网络文件系统的变化。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="自动依赖">自动依赖<a class="headerlink" title="Permalink to this headline" href="systemd.path.html#%E8%87%AA%E5%8A%A8%E4%BE%9D%E8%B5%96">¶</a></h2><div class="refsect2"><a name="id-1.6.2"></a><h3 id="隐含依赖">隐含依赖<a class="headerlink" title="Permalink to this headline" href="systemd.path.html#%E9%9A%90%E5%90%AB%E4%BE%9D%E8%B5%96">¶</a></h3><p>下列依赖关系是自动隐含的：</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>如果一个 path 单元的文件系统路径位于另一个 mount 单元之下，
        那么将会自动获得对其所依赖的挂载点单元的
        <code class="varname">Requires=</code> 与 <code class="varname">After=</code> 依赖。</p></li><li class="listitem"><p>所有 path 单元都将自动获得对
        匹配单元的 <code class="varname">Before=</code> 依赖。</p></li></ul></div></div><div class="refsect2"><a name="id-1.6.3"></a><h3 id="默认依赖">默认依赖<a class="headerlink" title="Permalink to this headline" href="systemd.path.html#%E9%BB%98%E8%AE%A4%E4%BE%9D%E8%B5%96">¶</a></h3><p>除非明确设置了 <code class="varname">DefaultDependencies=no</code> ，否则 path 单元将会自动添加下列依赖关系：</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="varname">Before=paths.target</code>,
        <code class="varname">After=sysinit.target</code>,
        <code class="varname">Requires=sysinit.target</code>,
        <code class="varname">Conflicts=shutdown.target</code>,
        <code class="varname">Before=shutdown.target</code> ，以确保该单元在关机前可以被干净的关闭。
        只有那些在系统启动早期就必须启动的路径，以及那些必须在关机流程结尾才能停止的路径才需要设置
         <code class="varname">DefaultDependencies=no</code> 。</p></li></ul></div><p></p></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="选项">选项<a class="headerlink" title="Permalink to this headline" href="systemd.path.html#%E9%80%89%E9%A1%B9">¶</a></h2><p>路径单元文件中必须包含一个 [Path] 小节，
    其中包含了被监视的文件系统路径的相关信息。
    这里只列出仅能用于 [Path] 小节的选项(亦称"指令"或"属性")：</p><div class="variablelist"><dl class="variablelist"><dt id="PathExists="><span class="term"><code class="varname">PathExists=</code>, </span><span class="term"><code class="varname">PathExistsGlob=</code>, </span><span class="term"><code class="varname">PathChanged=</code>, </span><span class="term"><code class="varname">PathModified=</code>, </span><span class="term"><code class="varname">DirectoryNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.path.html#PathExists=">¶</a></dt><dd><p>定义监视哪种类型的路径变化：
        <code class="varname">PathExists=</code>
        监视指定的路径是否存在，
        若存在则启动匹配单元。
        <code class="varname">PathExistsGlob=</code>
        监视是否存在至少一个与模式匹配的路径，若存在则启动匹配单元。
        <code class="varname">PathChanged=</code>
        监视指定路径的写入句柄是否恰好被关闭，
        若存在写入句柄且恰好被关闭，
        则启动匹配单元。
        <code class="varname">PathModified=</code>
        监视指定路径的最后修改时间是否发生变化，
        若发生变化则启动匹配单元。
        <code class="varname">DirectoryNotEmpty=</code>
        监视指定的文件夹是否非空，若包含至少一个文件或子目录，
        则启动匹配单元。</p><p>所有这些选项的值
        都必须是绝对路径。</p><p>可以多次使用这些选项
        以监控多个路径。
        如果为某个选项指定了一个空字符串，
        则表示清空该选项
        之前设置的所有监视路径。</p><p>如果在启动 path 单元时，
        指定的路径已经存在(对于 <code class="varname">PathExists=</code> 与
        <code class="varname">PathExistsGlob=</code> 来说)或者
        指定的目录非空(对于 <code class="varname">DirectoryNotEmpty=</code> 来说)，
        那么将会立即同时启动匹配单元。
        不过，对于 <code class="varname">PathChanged=</code> 与
        <code class="varname">PathModified=</code>
        来说，并不遵守这个规则。</p><p>如果没有权限监视指定的路径，
        那么 <span class="command"><strong>systemd</strong></span> 将会
        一直等待权限满足之后
        才会开始监视。</p></dd><dt id="Unit="><span class="term"><code class="varname">Unit=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.path.html#Unit=">¶</a></dt><dd><p>该路径单元的匹配单元，
        也就是被路径的变化启动的单元。
        参数是一个不以 "<code class="literal">.path</code>" 结尾的单元名。
        默认值是与此路径单元同名的服务单元(见上文)。
        建议将路径单元的名字
        与被该路径启动的匹配单元的名字
        保持一致
        (也就是仅单元后缀名不同)。</p></dd><dt id="MakeDirectory="><span class="term"><code class="varname">MakeDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.path.html#MakeDirectory=">¶</a></dt><dd><p>接受一个布尔值。
        设为 <code class="option">yes</code> 表示如果指定的目录不存在则首先创建它然后再监视它。
        此选项对 <code class="varname">PathExists=</code> 无效。
        默认值为 <code class="option">no</code></p></dd><dt id="DirectoryMode="><span class="term"><code class="varname">DirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.path.html#DirectoryMode=">¶</a></dt><dd><p>此选项指定在
         <code class="varname">MakeDirectory=</code>
        时新建目录的权限(八进制表示法)。
        默认值是 <code class="option">0755</code></p></dd></dl></div></div><div class="refsect1"><a name="id-1.8"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd.path.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
        <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
        <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
        <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
        <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
        <a href="http://man7.org/linux/man-pages/man7/inotify.7.html"><span class="citerefentry"><span class="refentrytitle">inotify</span>(7)</span></a>,
        <a href="systemd.directives.html#"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
      </p></div></div></body></html>
